Skip to main content
Version: 24.05

Development View

Model Based Development and Data Processing Kit banner

Model Based Development and Data Processing Kit

The video included under Success Stories illustrates software application functionality realizing the MDP Use Cases based on practical implementation examples.

Asset discovery

In the model and data processing use case, the users search for models and services (from now on called assets) in the Catena-X network and load them into a dedicated model and data processing application.

When a user connects to a partner EDC the catalogue will be displayed. The catalogue includes all assets that the user is allowed to see according to the associated policies.

In order to make assets discoverable by potential users, metadata should be associated to the assets at registration.

The code below shows an example on how to assign asset properties to my asset of type Asset and with ID equals 2.

The name of the asset properties should always start with “asset:”. The value of the property is interpreted as a string.


"asset": {

"@type": "Asset",

"@id": "2",

"properties": {

"asset:prop:id": "2",

"asset:prop:description": "FMU thermal model of powertrain ABXYZ",

"asset:ToolVersion": "3.5"

}

}

For retrieving an asset with a specific asset property the following filter expression should be used.


"filterExpression": [

{

"operandLeft": "asset:ToolVersion",

"operator": "=",

"operandRight": "3.5"

}

],

For having a broader search the “like” operator can be used coupled with the “%” symbol. In the example below, all assets with a description containing the word “powertrain” are returned.


"filterExpression": [

{

"operandLeft": "asset:prop:description",

"operator": "like",

"operandRight": "%powertrain%"

}

],

Guideline for Implementing an FMU Interoperability Checker

Meta models for asset properties like AAS “Provision of Simulation Models” or MIC can be used to assess the interoperability of FMU. In the following, a guideline for implementing such an FMU Interoperability Checker is given.

Use Cases

The FMU Interoperability Checker shall support the following two use cases.

  • Use Case 1: Connection Use Case. Given two FMU, FMU1 and FMU2, the FMU Interoperability Checker shall check, based on the FMU asset properties, if the two FMU can be connected in a co-simulation as depicted in the following figure.

UC1

  • Use Case 2: Replacement Use Case. Given a co-simulation of two FMU, FMU1a and FMU2, the FMU Interoperability Checker shall check based on the FMU asset properties, if FMU1a can be replaced by FMU1b as depicted in the following figure.

UC2

Workflow

The FMU FMU Interoperability Checker shall implement the following workflow.

  1. The Guideline “Guideline for Assigning Asset Properties to FMU and Services” (see above) has been provided to and accepted by the partners exchanging models .
  2. The partners agree upon a meta data model for the FMU asset properties, preferably either MIC or AAS “Provision of Simulation Models”.
  3. In the FMU Interoperability Checker, the user can select checking by using either of the following three options:
    • The FMI model description XML (default) for basic checks.
    • The AAS “Provision of Simulation Models” meta model.
    • The MIC meta model.

Checks

The FMU Interoperability Checker shall implement three levels of checks with advancing complexity:

  • Level 1: Visualization of the FMU asset properties.
  • Level 2: Direct comparison of fields of the FMU asset properties.
  • Level 3: Similarity checks of fields of the FMU asset properties.

In Level 1 “Visualization”, corresponding meta data fields of the different FMU shall be shown side by side such that a human reader is able to easily assess the interoperability by comparing the information provided in the different categories.

Level 2 “Direct Comparison” is suited for fields, where the content is not highly dependent on the provider of the meta data (no free text string fields). For instance, variable definitions (format type, causality, units, validity domains) are suited for such a check. Still, it is essential that these fields are provided using standards (which is neither the case in the FMU modelDescription.xml as often used today nor required by the specifications of AAS Submodel “Provision of Simulation Models” and MIC). For free text string fields that come with a basic choice of entries, Level 2 checks are possible as long as only entries from the basic choice are selected.

Level 3 “Similarity Check” is suited for fields, where the content can be extended by the user. Most of the fields falling into this category, are fields that can be used for model characterization, such as simulation purpose, type of model, etc. Often, the meta data models provide suggestions for field content (basic choice), but most of the fields are “open”, i.e., are in principle free text.

AAS “Provision of Simulation Models” meta model

*Open or closed FormChoices, means that the field can be extended by the user or not.

In the following table, all fields of the meta data model AAS “Provision of Simulation Models” are listed together with the proposed check level for an FMU Interoperability Checker integration. Container hierarchies do not have associated checks. All fields, that are not containers, are in principle suited for Level 1 “Visualization”.

FormTitleFormChoicesFormChoices
open or closed*
Level 1
Visualization
Level 2
Direct Comparison
Level 3
Similarity Check
Summaryx
SimPurpose
SimPurpose.
PosSimPurpose
Concept evaluation;
Sizing;
Control design;
Behaviour in fault condition;
Validation and testing;
Virtual commissioning;
Condition monitoring;
Predictive maintenance;
Operator Training;
Teaching
openx(x)x
SimPurpose.
NegSimPurpose
Concept evaluation;
Sizing;
Control design;
Behaviour in fault condition;
Validation and testing;
Virtual commissioning;
Condition monitoring;
Predictive maintenance;
Operator Training;
Teaching
openx(x)x
TypeOfModelLinear model;
Nonlinear model;
Data-driven model;
Lumped element model;
Fixed causality model;
Acausal model
openx(x)x
ScopeOfModelLogic and timing behaviour;
Geometry;
Kinematics;
Dynamics;
Distribution networks;
Network communication;
Visualization
openx(x)x
LicenseModelfree;
perpetual;
subscription;
volume-based
openxx(x)
EngineeringDomainHydraulic Engineering;
Electrical Engineering;
Pneumatic Engineering;
Mechanical Engineering;
Material Flow;
Robotics;
Image Processing;
Data Engineering;
Process Engineering;
Workflow Engineering;
HMI Engineering;
Control Engineering
openx(x)x
Environment
Environment.
OperatingSystem
xx
Environment.
ToolEnvironment
x
Environment.
DependencyEnvironment
x
Environment.
VisualizationInformation
separately;
integrated;
none
closedx
Environment.
SimulationTool
Environment.
SimulationTool.
SimToolName
x
Environment.
SimulationTool.
DependencySimTool
x
Environment.
SimulationTool.
Compiler
x
Environment.
SimulationTool.
SolverAndTolerances
Environment.
SimulationTool.
SolverAndTolerances.
StepSizeControlNeeded
x
Environment.
SimulationTool.
SolverAndTolerances.
FixedStepSize
x
Environment.
SimulationTool.
SolverAndTolerances.
StiffSolverNeeded
x
Environment.
SimulationTool.
SolverAndTolerances.
SolverIncluded
xx
Environment.
SimulationTool.
SolverAndTolerances.
TestedToolSolverAlgorithm
Environment.
SimulationTool.
SolverAndTolerances.
TestedToolSolverAlgorithm.
SolverAlgorithm
x
Environment.
SimulationTool.
SolverAndTolerances.
TestedToolSolverAlgorithm.
ToolSolverFurtherDescription
x
Environment.
SimulationTool.
SolverAndTolerances.
TestedToolSolverAlgorithm.
Tolerance
x
RefSimDocumentation
ModelFile
ModelFile.
ModelFileType
xx
ModelFile.
ModelFileVersion
ModelFile.
ModelFileVersion.
ModelVersionId
x
ModelFile.
ModelFileVersion.
ModelPreviewImage
ModelFile.
ModelFileVersion.
DigitalFile
ModelFile.
ModelFileVersion.
ModelFileReleaseNotesTxt
x
ModelFile.
ModelFileVersion.
ModelFileReleaseNotesFile
ParamMethodby using “technical data” of asset;
by using “technical data” and user;
by user interface;
by setting file;
not necessary;
by documentation file;
pre-parametrized
openx
ParamFile
InitStateMethodnot necessary;
by user interface;
by setting file;
set states within simulation environment;
integrated in model;
by documentation file
openx
InitStateFile
DefaultSimTimex
SimModManufacturingInformation
SimModManufacturingInformation.
Company
x
SimModManufacturingInformation.
Language
x
SimModManufacturingInformation.
Email
SimModManufacturingInformation.
Email.
TypeOfEmailAddress
x
SimModManufacturingInformation.
Email.
EmailAddress
x
SimModManufacturingInformation.
Email.
TypeOfPublicKey
x
SimModManufacturingInformation.
Email.
PublicKey
x
SimModManufacturingInformation.
Phone
SimModManufacturingInformation.
Phone.
TypeOfTelephone
x
SimModManufacturingInformation.
Phone.
TelephoneNumber
SimModManufacturingInformation.
Phone.
AvailableTime
x
Ports
Ports.
PortsConnector
Ports.
PortsConnector.
PortsConnectorName
x
Ports.
PortsConnector.
PortsConDescription
x
Ports.
PortsConnector.
Variable
Ports.
PortsConnector.
Variable.
VariableName
xx(x)
Ports.
PortsConnector.
Variable.
Range
xx
Ports.
PortsConnector.
Variable.
VariableType
Real;
Integer;
Boolean;
String;
ENUM
openxx
Ports.
PortsConnector.
Variable.
VariableDescription
xx
Ports.
PortsConnector.
Variable.
UnitList
s;
m;
kg;
N;
m/s;
m/s^2;
V;
A;
K;
none
openxx
Ports.
PortsConnector.
Variable.
UnitDescription
x
Ports.
PortsConnector.
Variable.
VariableCausality
input;
output;
acausal
closedxx
Ports.
PortsConnector.
Variable.
VariablePrefix
Flow;
Stream
closed
(only for acausal variables)
xx
Ports.
BinaryConnector
Ports.
BinaryConnector.
BinaryConName
x
Ports.
BinaryConnector.
BinaryConDescription
x

MIC meta model

*Open or closed FormChoices, means that the field can be extended by the user or not.

In the following table, all fields of the meta data model MIC are listed together with the proposed check level for an FMU Interoperability Checker integration. Container hierarchies do not have associated checks. All fields, that are not containers, are in principle suited for Level 1 “Visualization”.

Field(Basic) ChoicesChoices
open or closed*
Level 1
Visualization
Level 2
Direct Comparison
Level 3
Similarity Check
general-information
general-information.namex
general-information.descriptionx
general-information.ownerx
general-information.life-cycle-statex
general-information.versionx
general-information.version-datex
general-information.confidentialityxx(x)
general-information.licensexx(x)
integration
integration.software
integration.software.language
integration.software.language.language-namex
integration.software.language.language-versionx
integration.software.file-format
integration.software.file-format.file-format-namexx
integration.software.file-format.file-format-versionxx
integration.software.required-simulation-tool
integration.software.required-simulation-tool.tool-namex
integration.software.required-simulation-tool.tool-versionx
integration.software.required-simulation-tool.alternative-tool
integration.software.required-compiler
integration.software.required-compiler.compiler-namex
integration.software.required-compiler.compiler-versionx
integration.software.required-compiler.alternative-compiler
integration.software.required-operating-system
integration.software.required-operating-system.operating-system-namexx
integration.software.required-operating-system.operating-system-versionxx
integration.software.required-operating-system.alternative-operating-system
integration.software.other-software-requirement
integration.software.other-software-requirement.software-requirementx
integration.software.other-software-requirement.alternative-software-requirement
integration.reference-hardware-and-performance
integration.reference-hardware-and-performance.name-of-the-refernce-hardwarex
integration.reference-hardware-and-performance.time-factorx
integration.reference-hardware-and-performance.characteristics-ofthe-reference-hardware
integration.reference-hardware-and-performance.characteristics-ofthe-reference-hardware.CPUx
integration.reference-hardware-and-performance.characteristics-ofthe-reference-hardware.RAMx
integration.reference-hardware-and-performance.characteristics-ofthe-reference-hardware.data-storagex
integration.reference-hardware-and-performance.characteristics-ofthe-reference-hardware.other-hardware-characteristicsx
content-and-computation
content-and-computation.modelling-choice
content-and-computation.modelling-choice.explicative-textxx
content-and-computation.modelling-choice.formalization
content-and-computation.modelling-choice.formalization.modelling-field“Solid mechanics”,
“Mechanics of materials”,
“Fluid mechanics”,
“Acoustics and vibrations”,
“Electromagnetics”,
“Thermal”,
“Chemistry”,
“Optics”,
“Biology”,
“Sociology”
openx(x)x
content-and-computation.modelling-choice.formalization.type-of-choice“model”,
“neglect”
 closedxx
content-and-computation.modelling-choice.formalization.time-scalexx
content-and-computation.behavior
content-and-computation.behavior.behavior-specificationxx
content-and-computation.behavior.model-type“Discrete”,
“Continuous”,
“Deterministic”,
“Stochastic”,
“Static”,
“Dynamic”,
“Causal”,
“Acausal”,
“Bond graph”,
“Block diagram”,
“Transfer function”,
“State Machine diagram”,
“Neural network”,
“Empirical data”
openx(x)x
content-and-computation.default-solver
content-and-computation.default-solver.solver-namex
content-and-computation.default-solver.step-sizex
content-and-computation.default-solver.embedded “Yes”,
“No”
 closedxx
ports-internal-variables-and-parameters
ports-internal-variables-and-parameters.ports
ports-internal-variables-and-parameters.ports.variable
ports-internal-variables-and-parameters.ports.variable.namexx(x)
ports-internal-variables-and-parameters.ports.variable.descriptionxx
ports-internal-variables-and-parameters.ports.variable.typeNot provided by specification but using a standard should be agreed.xx
ports-internal-variables-and-parameters.ports.variable.unitNot provided by specification but using a standard should be agreed.xx
ports-internal-variables-and-parameters.ports.variable.default-valuex
ports-internal-variables-and-parameters.ports.variable.in-out“In”,
“Out”
closedxx
ports-internal-variables-and-parameters.ports.variable.validity-domainNot provided by specification but using a standard should be agreed. For outputs, this field should be used in the sense of a result range.xx
ports-internal-variables-and-parameters.ports.port
ports-internal-variables-and-parameters.ports.port.name
ports-internal-variables-and-parameters.ports.port.description
ports-internal-variables-and-parameters.ports.port.port
ports-internal-variables-and-parameters.internal-variables
ports-internal-variables-and-parameters.internal-variables.internal-variable
ports-internal-variables-and-parameters.internal-variables.internal-variable.namex
ports-internal-variables-and-parameters.internal-variables.internal-variable.description
ports-internal-variables-and-parameters.internal-variables.internal-variable.typex
ports-internal-variables-and-parameters.internal-variables.internal-variable.unitx
ports-internal-variables-and-parameters.internal-variables.internal-variable.default-valuex
ports-internal-variables-and-parameters.internal-variables.internal-variable.validity-domainx
ports-internal-variables-and-parameters.internal-variables.group-of-internal-variables
ports-internal-variables-and-parameters.internal-variables.group-of-internal-variables.name
ports-internal-variables-and-parameters.internal-variables.group-of-internal-variables.description
ports-internal-variables-and-parameters.internal-variables.group-of-internal-variables.group-of-internal-variables
ports-internal-variables-and-parameters.parameters
ports-internal-variables-and-parameters.parameters.parameter
ports-internal-variables-and-parameters.parameters.parameter.namex
ports-internal-variables-and-parameters.parameters.parameter.descriptionx
ports-internal-variables-and-parameters.parameters.parameter.typex
ports-internal-variables-and-parameters.parameters.parameter.unitx
ports-internal-variables-and-parameters.parameters.parameter.default-valuex
ports-internal-variables-and-parameters.parameters.parameter.validity-domainx
ports-internal-variables-and-parameters.parameters.group-of-parameters
ports-internal-variables-and-parameters.parameters.group-of-parameters.name
ports-internal-variables-and-parameters.parameters.group-of-parameters.description
ports-internal-variables-and-parameters.parameters.group-of-parameters.group-of-parameters
verification-and-validation
verification-and-validation.test
verification-and-validation.test.methodx
verification-and-validation.test.documentationx
verification-and-validation.metric
verification-and-validation.metric.namex
verification-and-validation.metric.scorex

NOTICE

This work is licensed under the CC-BY-4.0.